.row {
  display: flex;
  align-items: center;
}

.center {
  @extend .row;
  justify-content: center;
}

.column {
  display: flex;
  flex-direction: column;
}

.row,
.column {
  &-inline {
    display: inline-flex;
  }

  &-wrap {
    flex-wrap: wrap;
  }

  .stretch {
    align-self: stretch;
  }

  > * {
    flex-shrink: 0;
  }

  &.between {
    justify-content: space-between;
  }

  &.evenly {
    justify-content: space-evenly;
  }

  &.around {
    justify-content: space-around;
  }

  > .col {
    flex-basis: 0%;
    flex-grow: 1;
    flex-shrink: 1;

    &-start {
      align-self: flex-start;
    }

    &-center {
      align-self: center;
    }

    &-end {
      align-self: flex-end;
    }
  }

  &.main {
    &-start {
      justify-content: flex-start;
    }

    &-center {
      justify-content: center;
    }

    &-end {
      justify-content: flex-end;
    }

    &-stretch {
      justify-content: stretch;
    }
  }

  &.cross {
    &-start {
      align-items: flex-start;
    }

    &-center {
      align-items: center;
    }

    &-end {
      align-items: flex-end;
    }

    &-stretch {
      align-items: stretch;
    }
  }
}
